package com.zhs.study.util;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;

import java.util.List;

/**
 * 封装结果数据（某一页的数据）
 */
@Getter
@ApiModel
public class PageBeanUtil<T> {
	// 两个用户的输入
	@ApiModelProperty(value = "当前页码")
	private int currentPage; // 当前页码
	@ApiModelProperty(value = "每页显示的条数")
	private int pageSize; // 每页显示的条数
	// 两条 SQL 语句执行的结果
	@ApiModelProperty(value = "总条数")
	private int totalCount; // 总条数
	@ApiModelProperty(value = "当前页结果集数据")
	private List<T> data; // 当前页结果集数据
	// 三个程序计算的数据
	@ApiModelProperty(value = "上一页页码")
	private int prevPage; // 上一页页码
	@ApiModelProperty(value = "下一页页码")
	private int nextPage; // 下一页页码
	@ApiModelProperty(value = "总页数/末页页码")
	private int totalPage; // 总页数/末页页码
	// 分页数据通过下面构造期封装好
	public void PageResult(int currentPage, int pageSize, int totalCount, List<T>
			data) {
		this.currentPage = currentPage;
		this.pageSize = pageSize;
		this.totalCount = totalCount;
		this.data = data;
		// 计算三个数据
		this.totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
		this.prevPage = currentPage - 1 >= 1 ? currentPage - 1 : 1;
		this.nextPage = currentPage + 1 <= this.totalPage ? currentPage + 1 :
				this.totalPage;
	}
}
